Primitive থেকে Object এ এবং Object থেকে Primitive এ কনভার্ট করা (Autoboxing এবং Unboxing)

Java Technologies - Java.lang প্যাকেজ (Java.lang Package) - Wrapper ক্লাসসমূহ
261

Autoboxing এবং Unboxing হল Java-এর সুবিধাজনক বৈশিষ্ট্য যা primitive types এবং wrapper classes এর মধ্যে স্বয়ংক্রিয় রূপান্তরকে সহজ করে তোলে। Java 5 এ Autoboxing এবং Unboxing চালু হয়, এবং এটি কোডের সহজতর এবং পরিস্কার করার জন্য গুরুত্বপূর্ণ ভূমিকা পালন করে।

Primitive এবং Object (Wrapper Class) এর মধ্যে কনভার্ট করা:

  • Primitive Types: Java-তে ৮টি primitive data types রয়েছে:
    1. byte
    2. short
    3. int
    4. long
    5. float
    6. double
    7. char
    8. boolean
  • Wrapper Classes: Java-এর wrapper classes হল ক্লাসগুলি যা primitive types এর জন্য অবজেক্ট তৈরি করে। এই wrapper classes হল:
    1. Byte, Short, Integer, Long, Float, Double, Character, Boolean

Autoboxing (Primitive to Object):

Autoboxing হল Java-এর একটি প্রক্রিয়া, যেখানে primitive type এর মান স্বয়ংক্রিয়ভাবে সংশ্লিষ্ট wrapper class এর অবজেক্টে রূপান্তরিত হয়। অর্থাৎ, primitive type কে wrapper class-এর অবজেক্টে রূপান্তর করার জন্য আলাদা কোড লেখার প্রয়োজন হয় না, Java এটা নিজেই করে ফেলে।

Example of Autoboxing:

public class AutoboxingExample {
    public static void main(String[] args) {
        int num = 10;
        // Autoboxing: Primitive int to Integer object
        Integer numObj = num;  // Java does this automatically
        
        System.out.println("Integer object: " + numObj);  // Output: Integer object: 10
    }
}

এখানে, primitive int ধীরে ধীরে Integer object তে রূপান্তরিত হয়েছে, যা Autoboxing

Unboxing (Object to Primitive):

Unboxing হল Java-এর একটি প্রক্রিয়া, যেখানে wrapper class এর অবজেক্ট স্বয়ংক্রিয়ভাবে সংশ্লিষ্ট primitive type-এ রূপান্তরিত হয়। এটি Autoboxing এর বিপরীত প্রক্রিয়া।

Example of Unboxing:

public class UnboxingExample {
    public static void main(String[] args) {
        Integer numObj = new Integer(100);
        
        // Unboxing: Integer object to primitive int
        int num = numObj;  // Java does this automatically
        
        System.out.println("Primitive int: " + num);  // Output: Primitive int: 100
    }
}

এখানে, Integer object স্বয়ংক্রিয়ভাবে primitive int এ রূপান্তরিত হয়েছে, যা Unboxing

Autoboxing এবং Unboxing এর মধ্যে পার্থক্য:

বৈশিষ্ট্যAutoboxingUnboxing
কাজPrimitive type to Wrapper objectWrapper object to Primitive type
প্রক্রিয়াPrimitive value automatically wrapped in an objectWrapper object automatically unwrapped into primitive
যখন হয়যখন Primitive type কে object হিসেবে প্রয়োজন হয়যখন Object কে primitive type এ পরিবর্তন করতে হয়
Exampleint i = 10; Integer obj = i;Integer obj = 10; int i = obj;

Autoboxing এবং Unboxing এর সুবিধা:

  1. সহজ কোড: Autoboxing এবং Unboxing কোড লেখাকে সহজ এবং পরিষ্কার করে তোলে, কারণ developer কে manually object creation বা primitive extraction করতে হয় না।
  2. কার্যকরী: এই প্রক্রিয়াগুলি Java-এর ইন্টিগ্রেটেড ফিচার, তাই কোড স্বয়ংক্রিয়ভাবে চলতে থাকে।
  3. কমপ্লেক্সিটি কমানো: পূর্বে primitive types এবং তাদের wrapper class এর মধ্যে কনভার্সন করতে আলাদা কোড লিখতে হত, কিন্তু এখন এটি Java স্বয়ংক্রিয়ভাবে করে দেয়।

Example with Collection (Autoboxing and Unboxing):

Java Collections Framework, যেমন ArrayList এবং অন্যান্য collection types, objects এর সাথে কাজ করে। তাই primitive types যখন collection এ যোগ করতে হয় তখন Autoboxing এবং Unboxing কাজ করে।

Autoboxing in Collection:

import java.util.ArrayList;

public class AutoboxingInCollection {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        
        // Autoboxing: Primitive int to Integer object
        list.add(10);  // Java automatically converts int to Integer
        
        System.out.println(list);  // Output: [10]
    }
}

Unboxing in Collection:

import java.util.ArrayList;

public class UnboxingInCollection {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        list.add(10);  // Autoboxing: int to Integer
        
        // Unboxing: Integer object to primitive int
        int num = list.get(0);  // Java automatically converts Integer to int
        
        System.out.println(num);  // Output: 10
    }
}

Autoboxing এবং Unboxing এর Limitations:

  1. Performance: Autoboxing এবং Unboxing কার্যকর হলেও কিছু পরিমাণ performance overhead সৃষ্টি করতে পারে। অতিরিক্ত object creation এবং conversion সিস্টেমের কার্যকারিতা কিছুটা কমিয়ে দিতে পারে।
  2. Null Handling: যখন null মান একটি wrapper class object এর জন্য ব্যবহৃত হয়, তখন NullPointerException সৃষ্টি হতে পারে যদি unboxing করার সময় null value পাওয়া যায়।
Integer num = null;
int value = num;  // Throws NullPointerException during unboxing

Autoboxing এবং Unboxing Java-তে primitive types এবং wrapper objects-এর মধ্যে স্বয়ংক্রিয় রূপান্তর করার একটি সুবিধাজনক উপায়। এটি কোডের নমনীয়তা, পাঠযোগ্যতা এবং রক্ষণাবেক্ষণযোগ্যতা বৃদ্ধি করে, তবে এগুলি ব্যবহারের সময় performance এবং null handling নিয়ে সতর্ক থাকা দরকার।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...